package edu.stu.recyclerviewscrollbar.util

import android.animation.TypeEvaluator
import android.graphics.Point


// 实现TypeEvaluator接口
class PointEvaluator : TypeEvaluator<Any> {
    // 复写evaluate（）
    // 在evaluate（）里写入对象动画过渡的逻辑
    override fun evaluate(
        fraction: Float,
        startValue: Any?,
        endValue: Any?
    ): Any {

        // 将动画初始值startValue 和 动画结束值endValue 强制类型转换成Point对象
        val startPoint = startValue as Point
        val endPoint = endValue as Point

        // 根据fraction来计算当前动画的x和y的值
        val x: Float = startPoint.x + fraction * (endPoint.x - startPoint.x)
        val y: Float = startPoint.y+ fraction * (endPoint.y - startPoint.y)

        // 将计算后的坐标封装到一个新的Point对象中并返回
        return Point(x.toInt(), y.toInt())
    }
}